/*
 * 百度在线网络技术（北京）有限公司拥有本软件版权2022并保留所有权利。
 * Copyright 2022, Baidu.com,Inc 2:Baidu Online Network Technology (Beijing) Co.,Ltd,
 * All rights reserved.
 */

package com.azdebugit.suanfa.test.java_map_list_suanfa;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

/**
 * 
 * @author QuinnNorris
 * 视图是一个轻量级的集包装器，下面有两个例子
 */
public class Views {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //-----------------------例1----------------------
        int[] arr = new int[10];
        //创建一个普通的int数组
        Arrays.asList(arr);
        //通过asList方法，我们将一个普通的数组转换成List类型的视图对象。
 
        //-----------------------例2-----------------------
        List<String> ll = new LinkedList<>();
        //创建一个LinkedList对象ll。
        ll.addAll(Collections.nCopies(10, "ok"));
        //nCopies是Collections类的静态方法，可以将“ok”复制10次，并返回一个List类型的视图对象。
        //在这里我们不可以直接把Collections.nCopies的类型强转成LinkedList，因为语法不能上转下
        //我们通过addAll方法将这个内容填充到LinkedList对象ll中。
 
        ll.set(2, "no");
        //我们看看它是否能正常工作，我们试着将第三个链表中的String换成no。
        //请注意，链表最好不要使用get和set方法，这里只是为了实验。
        for(String s : ll){
            System.out.println(s);
        }
        //输出结果第三个是no，其他全是ok，没有任何问题。
    }
 
}